/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package e.planner;
import e.planner.compromissos;
import e.planner.GUI;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author Tec_Fil
 */
public class funcoes {
    
    
    
    static int VerificaDatas(String D1, String D2)
    {
        SimpleDateFormat form = new SimpleDateFormat("dd/MM/yyyy");  
        form.setLenient(false);  
        Date data1 = null;
        Date data2 = null;
        try {
            data1 = (java.util.Date)form.parse(D1); 
        } catch (ParseException ex) {
            Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            data2 = (java.util.Date)form.parse(D2);
        } catch (ParseException ex) {
            Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
        }  
          
        if(data1.after(data2) || data1.equals(data2)) //SE DATA INICIO > DATA FIM ERRO
        {
            return 1;
        }
        else
        { 
            return 0;
        }
    }
    
    static int VerificaDatasAddInterrupcao(String D1, String D2, String D3, String D4) throws ParseException
    {
        SimpleDateFormat form = new SimpleDateFormat("dd/MM/yyyy");  
        form.setLenient(false);  
        Date data1 = form.parse(D1);
        Date data2 = form.parse(D2);
        
        Date data3 = form.parse(D3);
        Date data4 = form.parse(D4);
        
        if((data1.after(data3) || data1.equals(data3)) && (data2.before(data4) || data2.equals(data4)))
        {
            return 1;
        }
        else
        { 
            return 0;
        }
    }
    
    static int VerificaHoras(String H1, String H2) throws ParseException
    {
        SimpleDateFormat formatador = new SimpleDateFormat("HH:mm");    
        Date d1 = formatador.parse(H1);  
        Date d2 = formatador.parse(H2);  
  
        if (d1.after(d2) || d1.equals(d2)) // SE HORA INICIO MAIOR QUE HORA FIM ERRO
        {  
            return 1;
        }  
        else  
        {  
            return 0;
        }  
    }

    
    static int VerificaHorasAulasCompromissos(String HI1, String HF1, String HI2, String HF2) throws ParseException
    {
        SimpleDateFormat formatador = new SimpleDateFormat("HH:mm");    
        Date dI1 = formatador.parse(HI1);  
        Date dF1 = formatador.parse(HF1);  
        Date dI2 = formatador.parse(HI2);  
        Date dF2 = formatador.parse(HF2);  
  
         System.out.println(dI1);
         System.out.println(dI2);
         System.out.println(dF1);
         System.out.println(dF2);
           
        if ((dI2.after(dI1) && (dF2.after(dF1)|| dI2.before(dI1)) && (dF2.before(dF1))))
        {  
            return 1;
        }  
        if(dI2.equals(dI1) || dF1.equals(dF2))
        {  
            return 0;
        }
            else 
                return 0;
    }
    
      static int VerificaHorasAulasCompromissos2(String HI1, String HF1, String HI2, String HF2) throws ParseException
    {
        SimpleDateFormat formatador = new SimpleDateFormat("HH:mm");    
        Date dI1 = formatador.parse(HI1);  
        Date dF1 = formatador.parse(HF1);  
        Date dI2 = formatador.parse(HI2);  
        Date dF2 = formatador.parse(HF2);  
  
        if (((dI2.equals(dI1) || dI2.before(dI1)) && (dI2.after(dF1) || dI2.equals(dF1))) || ((dF2.equals(dI1) || dF2.before(dI1)) && (dF2.after(dF1) || dF2.equals(dF1))) || (dI1.after(dI2) && dI1.before(dF2)))
        {  
            return 0;
        }  
        else  
        {  
            return 1;
        }  
    }
    
    static int VerificaDatasHorario(String data, String dataInicio, String dataFim) throws ParseException
    {
        SimpleDateFormat form = new SimpleDateFormat("dd/MM/yyyy");
        Date d = form.parse(data);
        Date di = form.parse(dataInicio);
        Date df = form.parse(dataFim);
        
        if((d.after(di) || d.equals(di)) && (d.before(df) || d.equals(df)))
            return 0;
        else
            return 1;
    }
      static int VerificaDatasInterrupcoes(String data, String dataIntInicio, String dataIntFim) throws ParseException
    {
        SimpleDateFormat form = new SimpleDateFormat("dd/MM/yyyy");
        Date d = form.parse(data);
        Date di = form.parse(dataIntInicio);
        Date df = form.parse(dataIntFim);
        
        if((d.after(di) && d.before(df) || d.equals(di)) || d.equals(df))
            return 0;
        else
            return 1;
    }
     
    
    
    static void CarregarDadosTarefas() throws FileNotFoundException
    {
        Scanner lerTarefasXml = new Scanner(new FileInputStream("Tarefas.xml"));
        String erTarefasXml = "//Tarefas/tarefa/nome";
        //GUI.arrayTarefas.add(taref);
    }
    
    static int ValidaHora(String h) throws ParseException
    {
        SimpleDateFormat formatador = new SimpleDateFormat("HH:mm");  
        formatador.setLenient(false);  
        try{  
            formatador.parse(h);  
        }catch(ParseException e){  
            return 1;  
        }  
        return 0;
    }
    
    static int ValidaData(String d) throws ParseException
    {
        SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy"); 
        formatador.setLenient(false);  
        try{  
            formatador.parse(d);  
        }catch(ParseException e){  
            return 1;  
        }  
        return 0;
    }
}